package com.bookstore.back.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.bookstore.back.entity.Cart;

import java.util.List;
import java.util.Map;

/**
 * 购物车服务接口
 * 
 * @author 程序猿_Ti
 * @since 2025-07-22
 */
public interface CartService extends IService<Cart> {

    /**
     * 获取用户购物车列表（包含图书详细信息）
     * 
     * @return 购物车列表
     */
    List<Map<String, Object>> getUserCartList();

    /**
     * 添加商品到购物车
     * 
     * @param bookId 图书ID
     * @param quantity 数量
     * @return 是否成功
     */
    boolean addToCart(Integer bookId, Integer quantity);

    /**
     * 更新购物车商品数量
     * 
     * @param bookId 图书ID
     * @param quantity 新数量
     * @return 是否成功
     */
    boolean updateCartQuantity(Integer bookId, Integer quantity);

    /**
     * 从购物车删除商品
     * 
     * @param bookId 图书ID
     * @return 是否成功
     */
    boolean removeFromCart(Integer bookId);

    /**
     * 清空用户购物车
     * 
     * @return 是否成功
     */
    boolean clearCart();

    /**
     * 获取用户购物车商品数量
     * 
     * @return 商品总数量
     */
    Integer getCartCount();

    /**
     * 检查商品是否在购物车中
     * 
     * @param bookId 图书ID
     * @return 是否在购物车中
     */
    boolean isInCart(Integer bookId);

    /**
     * 批量添加商品到购物车（用于登录时同步本地数据）
     * 
     * @param cartItems 购物车商品列表
     * @return 是否成功
     */
    boolean syncCartFromLocal(List<Map<String, Object>> cartItems);
}
